/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.bs.beans.fiscal;

import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

/**
 *
 * @author Bone
 */
@Entity
@Table(name = "FISCO_EMITENTE")
public class FiscoEmitente implements Serializable {
    @Transient
    private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "ID")
    private Integer id;
    @Column(name = "CNPJ")
    private String cnpj;
    @Column(name = "ORGAO")
    private String orgao;
    @Column(name = "MATRICULA_AGENTE")
    private String matriculaAgente;
    @Column(name = "NOME_AGENTE")
    private String nomeAgente;
    @Column(name = "TELEFONE")
    private String telefone;
    @Column(name = "UF")
    private Integer uf;
    @Column(name = "NUMERO_DOC_ARRECADACAO")
    private String numeroDocArrecadacao;
    @Column(name = "DATA_DOC_ARRECADACAO")
    @Temporal(TemporalType.DATE)
    private Date dataDocArrecadacao;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Column(name = "VALOR_TOTAL_DOC")
    private BigDecimal valorTotalDoc;
    @Column(name = "REPARTICAO_FISCAL_EMITENTE")
    private String reparticaoFiscalEmitente;
    @Column(name = "DATA_PAGAMENTO_DOC_ARRECADACAO")
    @Temporal(TemporalType.DATE)
    private Date dataPagamentoDocArrecadacao;

    public FiscoEmitente() {
    }

    public FiscoEmitente(Integer id) {
        this.id = id;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        Integer oldId = this.id;
        this.id = id;
        changeSupport.firePropertyChange("id", oldId, id);
    }

    public String getCnpj() {
        return cnpj;
    }

    public void setCnpj(String cnpj) {
        String oldCnpj = this.cnpj;
        this.cnpj = cnpj;
        changeSupport.firePropertyChange("cnpj", oldCnpj, cnpj);
    }

    public String getOrgao() {
        return orgao;
    }

    public void setOrgao(String orgao) {
        String oldOrgao = this.orgao;
        this.orgao = orgao;
        changeSupport.firePropertyChange("orgao", oldOrgao, orgao);
    }

    public String getMatriculaAgente() {
        return matriculaAgente;
    }

    public void setMatriculaAgente(String matriculaAgente) {
        String oldMatriculaAgente = this.matriculaAgente;
        this.matriculaAgente = matriculaAgente;
        changeSupport.firePropertyChange("matriculaAgente", oldMatriculaAgente, matriculaAgente);
    }

    public String getNomeAgente() {
        return nomeAgente;
    }

    public void setNomeAgente(String nomeAgente) {
        String oldNomeAgente = this.nomeAgente;
        this.nomeAgente = nomeAgente;
        changeSupport.firePropertyChange("nomeAgente", oldNomeAgente, nomeAgente);
    }

    public String getTelefone() {
        return telefone;
    }

    public void setTelefone(String telefone) {
        String oldTelefone = this.telefone;
        this.telefone = telefone;
        changeSupport.firePropertyChange("telefone", oldTelefone, telefone);
    }

    public Integer getUf() {
        return uf;
    }

    public void setUf(Integer uf) {
        Integer oldUf = this.uf;
        this.uf = uf;
        changeSupport.firePropertyChange("uf", oldUf, uf);
    }

    public String getNumeroDocArrecadacao() {
        return numeroDocArrecadacao;
    }

    public void setNumeroDocArrecadacao(String numeroDocArrecadacao) {
        String oldNumeroDocArrecadacao = this.numeroDocArrecadacao;
        this.numeroDocArrecadacao = numeroDocArrecadacao;
        changeSupport.firePropertyChange("numeroDocArrecadacao", oldNumeroDocArrecadacao, numeroDocArrecadacao);
    }

    public Date getDataDocArrecadacao() {
        return dataDocArrecadacao;
    }

    public void setDataDocArrecadacao(Date dataDocArrecadacao) {
        Date oldDataDocArrecadacao = this.dataDocArrecadacao;
        this.dataDocArrecadacao = dataDocArrecadacao;
        changeSupport.firePropertyChange("dataDocArrecadacao", oldDataDocArrecadacao, dataDocArrecadacao);
    }

    public BigDecimal getValorTotalDoc() {
        return valorTotalDoc;
    }

    public void setValorTotalDoc(BigDecimal valorTotalDoc) {
        BigDecimal oldValorTotalDoc = this.valorTotalDoc;
        this.valorTotalDoc = valorTotalDoc;
        changeSupport.firePropertyChange("valorTotalDoc", oldValorTotalDoc, valorTotalDoc);
    }

    public String getReparticaoFiscalEmitente() {
        return reparticaoFiscalEmitente;
    }

    public void setReparticaoFiscalEmitente(String reparticaoFiscalEmitente) {
        String oldReparticaoFiscalEmitente = this.reparticaoFiscalEmitente;
        this.reparticaoFiscalEmitente = reparticaoFiscalEmitente;
        changeSupport.firePropertyChange("reparticaoFiscalEmitente", oldReparticaoFiscalEmitente, reparticaoFiscalEmitente);
    }

    public Date getDataPagamentoDocArrecadacao() {
        return dataPagamentoDocArrecadacao;
    }

    public void setDataPagamentoDocArrecadacao(Date dataPagamentoDocArrecadacao) {
        Date oldDataPagamentoDocArrecadacao = this.dataPagamentoDocArrecadacao;
        this.dataPagamentoDocArrecadacao = dataPagamentoDocArrecadacao;
        changeSupport.firePropertyChange("dataPagamentoDocArrecadacao", oldDataPagamentoDocArrecadacao, dataPagamentoDocArrecadacao);
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof FiscoEmitente)) {
            return false;
        }
        FiscoEmitente other = (FiscoEmitente) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.bs.beans.fiscal.FiscoEmitente[ id=" + id + " ]";
    }

    public void addPropertyChangeListener(PropertyChangeListener listener) {
        changeSupport.addPropertyChangeListener(listener);
    }

    public void removePropertyChangeListener(PropertyChangeListener listener) {
        changeSupport.removePropertyChangeListener(listener);
    }
    
}
